package com.innovation.config;

import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.innovation.config.mapper.ConfigBulletinMapper;
import com.innovation.config.mapper.ConfigItemMapper;
import com.innovation.config.mapper.ConfigPlayerLevelMapper;
import com.innovation.config.model.ConfigBulletin;
import com.innovation.config.model.ConfigBulletinExample;
import com.innovation.config.model.ConfigItem;
import com.innovation.config.model.ConfigPlayerLevel;

public class ConfigHelper {
	/**
	 * 玩家等级配置(key:level)
	 */
	private static Map<Integer, ConfigPlayerLevel> configPlayerLevelMap = new HashMap<Integer, ConfigPlayerLevel>();
//	/**
//	 * 英雄配置(key:id)
//	 */
//	private static Map<Integer, ConfigHero> configHeroMap = new HashMap<Integer, ConfigHero>();
//	/**
//	 * 英雄等级配置(key:level)
//	 */
//	private static Map<Integer, ConfigHeroLevel> configHeroLevelMap = new HashMap<Integer, ConfigHeroLevel>();
//	/**
//	 * 英雄等级对应的魂力总值(key:level)
//	 */
//	private static Map<Integer, Integer> heroLevelSoulMap = new HashMap<Integer, Integer>();
//	/**
//	 * 英雄品质配置(key:id)
//	 */
//	private static Map<Integer, ConfigHeroQuality> configHeroQualityMap = new HashMap<Integer, ConfigHeroQuality>();
//	/**
//	 * 英雄属性配置(key:hero_id+quality)
//	 */
//	private static Map<String, ConfigHeroProp> configHeroPropMap = new HashMap<String, ConfigHeroProp>();
//	/**
//	 * 建筑元素配置(key:id)
//	 */
//	private static Map<Integer, ConfigBuildingTile> configBuildingTileMap = new HashMap<Integer, ConfigBuildingTile>();
//	/**
//	 * 关卡配置(key:id)
//	 */
//	private static Map<Integer, ConfigMap> configMapMap = new HashMap<Integer, ConfigMap>();
//	/**
//	 * 道具类型配置(key:id)
//	 */
//	private static Map<Integer, ConfigItemType> configItemTypeMap = new HashMap<Integer, ConfigItemType>();
	/**
	 * 道具配置(key:id)
	 */
	private static Map<Integer, ConfigItem> configItemMap = new HashMap<Integer, ConfigItem>();
//	/**
//	 * 道具技能配置
//	 */
//	private static Map<Integer, ConfigItemSkill> configItemSkillMap = new HashMap<Integer, ConfigItemSkill>();
//	/**
//	 * 怪物配置(key:id)
//	 */
//	private static Map<Integer, ConfigMonster> configMonsterMap = new HashMap<Integer, ConfigMonster>();
//	/**
//	 * 怪物属性配置(key:id)
//	 */
//	private static Map<Integer, ConfigMonsterProp> configMonsterPropMap = new HashMap<Integer, ConfigMonsterProp>();
//	/**
//	 * 范围类型配置(key:id)
//	 */
//	private static Map<Integer, ConfigRangeType> configRangeTypeMap = new HashMap<Integer, ConfigRangeType>();
//	/**
//	 * 技能配置(key:id)
//	 */
//	private static Map<Integer, ConfigSkill> configSkillMap = new HashMap<Integer, ConfigSkill>();
//	/**
//	 * 箱子配置(key:id)
//	 */
//	private static Map<Integer, ConfigBox> configBoxMap = new HashMap<Integer, ConfigBox>();
//	private static Map<Integer, ConfigBox> configItemBoxMap = new HashMap<Integer, ConfigBox>();
//	/**
//	 * 商城配置 
//	 */
//	private static Map<Integer, ConfigGoods> configGoodsMap = new HashMap<Integer, ConfigGoods>();
//	/**
//	 * 道具对应的商品配置
//	 */
//	private static Map<Integer, ConfigGoods> configItemGoodsMap = new HashMap<Integer, ConfigGoods>();
//	/**
//	 * 天赋类型配置
//	 */
//	private static Map<Integer, ConfigTalentType> configTalentTypeMap = new HashMap<Integer, ConfigTalentType>();
//	/**
//	 * 天赋配置
//	 */
//	private static Map<Integer, ConfigTalent> configTalentMap = new HashMap<Integer, ConfigTalent>();
//	/**
//	 * 类型对应的天赋列表(key:type)
//	 */
//	private static Map<Integer, List<ConfigTalent>> typeConfigTalentsMap = new HashMap<Integer, List<ConfigTalent>>();
//	/**
//	 * 品质对应的天赋列表(key:quality)
//	 */
//	private static Map<Integer, List<ConfigTalent>> qualityConfigTalentsMap = new HashMap<Integer, List<ConfigTalent>>();
//	/**
//	 * 宠物抽奖配置(key:id)
//	 */
//	private static Map<Integer, ConfigHeroLottery> configHeroLotteryMap = new HashMap<Integer, ConfigHeroLottery>();
//	
//	public static int TOTAL_TALENT_PROB = 0; //天赋总概率
//	/**
//	 * 奖励配置(key:id)
//	 */
//	private static Map<Integer, ConfigReward> configRewardMap = new HashMap<Integer, ConfigReward>();
//	/**
//	 * 组任务奖励配置(key:day_groupId)
//	 */
//	private static Map<String, List<ConfigMissionReward>> groupConfigMissionRewardsMap = new HashMap<String, List<ConfigMissionReward>>();
//	/**
//	 * 组奖励总概率(key:day_groupId)
//	 */
//	private static Map<String, Integer> groupMissionRewardProbMap = new HashMap<String, Integer>();
	/**
	 * 公告配置(key:id)
	 */
	private static Map<Integer, ConfigBulletin> configBulletinMap = new HashMap<Integer, ConfigBulletin>();
//	/**
//	 * 任务配置(key:id)
//	 */
//	private static Map<Integer, ConfigMission> configMissionMap = new HashMap<Integer, ConfigMission>();
//	/**
//	 * 任务类型配置(key:type)
//	 */
//	private static Map<Integer, List<ConfigMission>> typeMissionMap = new HashMap<Integer, List<ConfigMission>>();
//	/**
//	 * 日常随机任务配置(key:groupId)
//	 */
//	private static Map<Integer, List<ConfigRandomMission>> randomGroupMissionMap = new HashMap<Integer, List<ConfigRandomMission>>();
//	
//	/**
//	 * 主线任务分组配置
//	 */
//	private static Map<Integer, List<ConfigMission>> masterGroupMissionMap = new HashMap<Integer, List<ConfigMission>>();
//	/**
//	 * 消息配置(key:id)
//	 */
//	private static Map<Integer, ConfigMsg> configMsgMap = new HashMap<Integer, ConfigMsg>();
//	
//	/**
//	 * PVP配置(key:id)
//	 */
//	private static Map<Integer, ConfigPvp> configPvpMap = new HashMap<Integer, ConfigPvp>();
//	private static List<ConfigPvp> configPvpList = new ArrayList<ConfigPvp>();
//	
//	/**
//	 * PVP地图配置(key:id)
//	 */
//	private static Map<Integer, ConfigPvpMap> configPvpMapMap = new HashMap<Integer, ConfigPvpMap>();
//	private static List<ConfigPvpMap> configPvpMapList = new ArrayList<ConfigPvpMap>();
	
	/**
	 * 资源库初始化
	 */
	public static void init(){
		initConfigPlayerLevel();//初始化玩家等级配置
//		initConfigHero();
//		initConfigHeroLevel();
//		initConfigHeroQuality();
//		initConfigHeroProp();
//		initConfigBuildingTile();
//		initConfigMap();
//		initConfigItemType();
		initConfigItem();
//		initConfigMonster();
//		initConfigMonsterProp();
//		initConfigRangeType();
//		initConfigSkill();
//		initConfigBox();
//		initConfigGoods();
//		initConfigTalentType();
//		initConfigTalent();
//		initConfigHeroLottery();
//		initConfigReward();
		initConfigBulletin();
//		initConfigMission();
//		initConfigMsg();
//		initConfigItemSkill();
//		initConfigPvp();
//		initConfigPvpMap();
	}
//	
//	/**
//	 * 初始化PVP地图配置
//	 */
//	private static void initConfigPvpMap() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigPvpMapMapper mapper = sqlSession.getMapper(ConfigPvpMapMapper.class);
//			List<ConfigPvpMap> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigPvpMap config : list){
//					configPvpMapMap.put(config.getId(), config);
//					
//					configPvpMapList.add(config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化PVP配置
//	 */
//	private static void initConfigPvp() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigPvpMapper mapper = sqlSession.getMapper(ConfigPvpMapper.class);
//			List<ConfigPvp> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigPvp config : list){
//					//初始化配置
//					config.init();
//					
//					configPvpMap.put(config.getId(), config);	
//					
//					configPvpList.add(config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化道具技能配置
//	 */
//	private static void initConfigItemSkill() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigItemSkillMapper mapper = sqlSession.getMapper(ConfigItemSkillMapper.class);
//			List<ConfigItemSkill> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigItemSkill config : list){
//					configItemSkillMap.put(config.getId(), config);	
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化系统信息配置
//	 */
//	private static void initConfigMsg() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigMsgMapper mapper = sqlSession.getMapper(ConfigMsgMapper.class);
//			List<ConfigMsg> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigMsg config : list){
//					configMsgMap.put(config.getId(), config);	
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化任务配置
//	 */
//	private static void initConfigMission() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigMissionMapper mapper = sqlSession.getMapper(ConfigMissionMapper.class);
//			List<ConfigMission> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigMission config : list){
//					configMissionMap.put(config.getId(), config);
//					
//					List<ConfigMission> typeMissionList = typeMissionMap.get(config.getType());
//					if(typeMissionList == null){
//						typeMissionList = new ArrayList<ConfigMission>();
//						typeMissionMap.put(config.getType(), typeMissionList);
//					}
//					typeMissionList.add(config);
//					
//					if(config.getType() == 1){
//						List<ConfigMission> tempList = masterGroupMissionMap.get(config.getGroupId());
//						if(tempList == null){
//							tempList = new ArrayList<ConfigMission>();
//							masterGroupMissionMap.put(config.getGroupId(), tempList);
//						}
//						tempList.add(config);
//					}
//				}
//			}
//			
//			//随机任务配置
//			ConfigRandomMissionMapper randomMapper = sqlSession.getMapper(ConfigRandomMissionMapper.class);
//			List<ConfigRandomMission> newList = randomMapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigRandomMission config : newList){
//					List<ConfigRandomMission> tmpList = randomGroupMissionMap.get(config.getGroupId());
//					if(tmpList == null){
//						tmpList = new ArrayList<ConfigRandomMission>();
//						randomGroupMissionMap.put(config.getGroupId(), tmpList);
//					}
//					tmpList.add(config);
//				}
//			}
//			
//		}finally{
//			sqlSession.close();
//		}
//	}

	/**
	 * 初始化公告配置
	 */
	private static void initConfigBulletin() {
		SqlSession sqlSession = getSqlSession();
		try{
			ConfigBulletinMapper mapper = sqlSession.getMapper(ConfigBulletinMapper.class);
			ConfigBulletinExample example = new ConfigBulletinExample();
			List<ConfigBulletin> list = mapper.selectByExample(example);
			
			Calendar cal = Calendar.getInstance();
			Date now = cal.getTime();
			if(list != null && list.size() > 0){
				for(ConfigBulletin config : list){
					if(config.getEndTime() == null || config.getEndTime().after(now)){
						configBulletinMap.put(config.getId(), config);	
					}
				}
			}
		}finally{
			sqlSession.close();
		}
	}

//	/**
//	 * 初始化奖励配置
//	 */
//	private static void initConfigReward() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigRewardMapper mapper = sqlSession.getMapper(ConfigRewardMapper.class);
//			List<ConfigReward> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigReward config : list){
//					configRewardMap.put(config.getId(), config);
//				}
//			}
//			
//			ConfigMissionRewardMapper mapper1 = sqlSession.getMapper(ConfigMissionRewardMapper.class);
//			List<ConfigMissionReward> newList = mapper1.selectByExample(null);
//			if(newList != null && newList.size() > 0){
//				for(ConfigMissionReward config : newList){
//					String key = config.getDay()+"_"+config.getGroupId();
//					List<ConfigMissionReward> tmpList = groupConfigMissionRewardsMap.get(key);
//					if(tmpList == null){
//						tmpList = new ArrayList<ConfigMissionReward>();
//						groupConfigMissionRewardsMap.put(key, tmpList);
//					}
//					tmpList.add(config);
//					
//					//组总概率
//					Integer prob = groupMissionRewardProbMap.get(key);
//					if(prob == null){
//						groupMissionRewardProbMap.put(key, config.getGroupProb());
//					}else{
//						groupMissionRewardProbMap.put(key, config.getGroupProb()+prob);
//					}
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化宠物抽奖配置
//	 */
//	private static void initConfigHeroLottery() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigHeroLotteryMapper mapper = sqlSession.getMapper(ConfigHeroLotteryMapper.class);
//			List<ConfigHeroLottery> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigHeroLottery config : list){
//					configHeroLotteryMap.put(config.getId(), config);
//					
//					config.init();
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化天赋配置
//	 */
//	private static void initConfigTalent() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigTalentMapper mapper = sqlSession.getMapper(ConfigTalentMapper.class);
//			List<ConfigTalent> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigTalent config : list){
//					configTalentMap.put(config.getId(), config);
//					TOTAL_TALENT_PROB += config.getProb();
//					
//					//按类型分
//					List<ConfigTalent> talents = typeConfigTalentsMap.get(config.getType());
//					if(talents == null){
//						talents = new ArrayList<ConfigTalent>();
//						typeConfigTalentsMap.put(config.getType(), talents);
//					}
//					talents.add(config);
//					
//					//按品质分
//					talents = qualityConfigTalentsMap.get(config.getQuality());
//					if(talents == null){
//						talents = new ArrayList<ConfigTalent>();
//						qualityConfigTalentsMap.put(config.getQuality(), talents);
//					}
//					talents.add(config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化天赋类型配置
//	 */
//	private static void initConfigTalentType() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigTalentTypeMapper mapper = sqlSession.getMapper(ConfigTalentTypeMapper.class);
//			List<ConfigTalentType> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigTalentType config : list){
//					configTalentTypeMap.put(config.getId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化商城配置
//	 */
//	private static void initConfigGoods() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigGoodsMapper mapper = sqlSession.getMapper(ConfigGoodsMapper.class);
//			List<ConfigGoods> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigGoods config : list){
//					configGoodsMap.put(config.getId(), config);
//					
//					configItemGoodsMap.put(config.getItemId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化宝箱配置
//	 */
//	private static void initConfigBox() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigBoxMapper mapper = sqlSession.getMapper(ConfigBoxMapper.class);
//			List<ConfigBox> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigBox config : list){
//					configBoxMap.put(config.getId(), config);
//					if(config.getItemId() > 0){
//						configItemBoxMap.put(config.getItemId(), config);
//					}
//					
//					config.init();
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化技能配置
//	 */
//	private static void initConfigSkill() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigSkillMapper mapper = sqlSession.getMapper(ConfigSkillMapper.class);
//			List<ConfigSkill> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigSkill config : list){
//					configSkillMap.put(config.getId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化范围类型配置
//	 */
//	private static void initConfigRangeType() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigRangeTypeMapper mapper = sqlSession.getMapper(ConfigRangeTypeMapper.class);
//			List<ConfigRangeType> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigRangeType config : list){
//					configRangeTypeMap.put(config.getId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化怪物属性配置
//	 */
//	private static void initConfigMonsterProp() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigMonsterPropMapper mapper = sqlSession.getMapper(ConfigMonsterPropMapper.class);
//			List<ConfigMonsterProp> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigMonsterProp config : list){
//					configMonsterPropMap.put(config.getId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 初始化怪物配置
//	 */
//	private static void initConfigMonster() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigMonsterMapper mapper = sqlSession.getMapper(ConfigMonsterMapper.class);
//			List<ConfigMonster> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigMonster config : list){
//					configMonsterMap.put(config.getId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}

	/**
	 * 初始化道具配置
	 */
	private static void initConfigItem() {
		SqlSession sqlSession = getSqlSession();
		try{
			ConfigItemMapper mapper = sqlSession.getMapper(ConfigItemMapper.class);
			List<ConfigItem> list = mapper.selectByExample(null);
			if(list != null && list.size() > 0){
				for(ConfigItem config : list){
					configItemMap.put(config.getId(), config);
				}
			}
		}finally{
			sqlSession.close();
		}
	}

//	/**
//	 * 初始化道具类型配置
//	 */
//	private static void initConfigItemType() {
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigItemTypeMapper mapper = sqlSession.getMapper(ConfigItemTypeMapper.class);
//			List<ConfigItemType> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigItemType config : list){
//					configItemTypeMap.put(config.getId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}

	private static SqlSession getSqlSession(){
		SqlSessionFactory sqlSessionFactory = SqlMapperConfig.getResSessionFactory();
		return sqlSessionFactory.openSession();
	}
	
	/**
	 * 初始化玩家等级配置
	 */
	private static void initConfigPlayerLevel(){
		SqlSession sqlSession = getSqlSession();
		try{
			ConfigPlayerLevelMapper mapper = sqlSession.getMapper(ConfigPlayerLevelMapper.class);
			List<ConfigPlayerLevel> list = mapper.selectByExample(null);
			if(list != null && list.size() > 0){
				for(ConfigPlayerLevel config : list){
					configPlayerLevelMap.put(config.getLevel(), config);
				}
			}
		}finally{
			sqlSession.close();
		}
	}
//	
//	/**
//	 * 初始化英雄配置
//	 */
//	private static void initConfigHero(){
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigHeroMapper mapper = sqlSession.getMapper(ConfigHeroMapper.class);
//			List<ConfigHero> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigHero config : list){
//					configHeroMap.put(config.getId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//	
//	/**
//	 * 初始化英雄等级
//	 */
//	private static void initConfigHeroLevel(){
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigHeroLevelMapper mapper = sqlSession.getMapper(ConfigHeroLevelMapper.class);
//			List<ConfigHeroLevel> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigHeroLevel config : list){
//					configHeroLevelMap.put(config.getLevel(), config);
//					if(config.getLevel() == 1){
//						heroLevelSoulMap.put(config.getLevel(), 0);
//					}else{
//						Integer preValue = heroLevelSoulMap.get(config.getLevel() - 1);
//						ConfigHeroLevel configHeroLevel = getConfigHeroLevel(config.getLevel() - 1);
//						heroLevelSoulMap.put(config.getLevel(), preValue + configHeroLevel.getSoul());
//					}
//					
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//	
//	/**
//	 * 初始化英雄品质
//	 */
//	private static void initConfigHeroQuality(){
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigHeroQualityMapper mapper = sqlSession.getMapper(ConfigHeroQualityMapper.class);
//			List<ConfigHeroQuality> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigHeroQuality config : list){
//					config.init();
//					configHeroQualityMap.put(config.getId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//	
//	/**
//	 * 初始化英雄属性
//	 */
//	private static void initConfigHeroProp(){
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigHeroPropMapper mapper = sqlSession.getMapper(ConfigHeroPropMapper.class);
//			List<ConfigHeroProp> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigHeroProp config : list){
//					configHeroPropMap.put(config.getHeroId()+"_"+config.getQuality(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//	/**
//	 * 初始化建筑元素
//	 */
//	private static void initConfigBuildingTile(){
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigBuildingTileMapper mapper = sqlSession.getMapper(ConfigBuildingTileMapper.class);
//			List<ConfigBuildingTile> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigBuildingTile config : list){
//					configBuildingTileMap.put(config.getId(), config);
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//	/**
//	 * 初始化关卡
//	 */
//	private static void initConfigMap(){
//		SqlSession sqlSession = getSqlSession();
//		try{
//			ConfigMapMapper mapper = sqlSession.getMapper(ConfigMapMapper.class);
//			List<ConfigMap> list = mapper.selectByExample(null);
//			if(list != null && list.size() > 0){
//				for(ConfigMap config : list){
//					configMapMap.put(config.getId(), config);
//					
//					config.init();
//				}
//			}
//		}finally{
//			sqlSession.close();
//		}
//	}
//
//	/**
//	 * 根据id获取关卡配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigMap getConfigMap(int id){
//		return configMapMap.get(id);
//	}
	
	/**
	 * 根据id获取道具配置
	 * @param itemId
	 * @return
	 */
	public static ConfigItem getConfigItem(int itemId){
		return configItemMap.get(itemId);
	}
	
//	/**
//	 * 获取英雄等级配置
//	 * @param level
//	 * @return
//	 */
//	public static ConfigHeroLevel getConfigHeroLevel(int level){
//		return configHeroLevelMap.get(level);
//	}
//	
//	/**
//	 * 根据英雄获得需要的总的魂力值
//	 * @param level
//	 * @return
//	 */
//	public static int getTotalSoulByHeroLevel(int level){
//		return heroLevelSoulMap.get(level);
//	}
//	/**
//	 * 获取商城道具配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigGoods getConfigGoods(int id){
//		return configGoodsMap.get(id);
//	}
//	
//	/**
//	 * 获取英雄品质配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigHeroQuality getConfigHeroQuality(int id){
//		return configHeroQualityMap.get(id);
//	}
//	
//	/**
//	 * 获取所有的天赋
//	 * @return
//	 */
//	public static Collection<ConfigTalent> getAllConfigTalent(){
//		return configTalentMap.values();
//	}
//	
//	/**
//	 * 根据天赋类型获取天赋列表
//	 * @param type
//	 * @return
//	 */
//	public static List<ConfigTalent> getConfigTalentsByType(int type){
//		return typeConfigTalentsMap.get(type);
//	}
//	
//	/**
//	 * 根据天赋品质获取天赋列表
//	 * @param type
//	 * @return
//	 */
//	public static List<ConfigTalent> getConfigTalentsByQuality(int quality){
//		return qualityConfigTalentsMap.get(quality);
//	}
//	
//	/**
//	 * 根据id获取天赋信息
//	 * @param id
//	 * @return
//	 */
//	public static ConfigTalent getConfigTalent(int id){
//		return configTalentMap.get(id);
//	}
	
	/**
	 * 根据玩家等级获取玩家等级配置
	 * @param level
	 * @return
	 */
	public static ConfigPlayerLevel getConfigPlayerLevel(int level){
		return configPlayerLevelMap.get(level);
	}
	
//	/**
//	 * 通过id获取宝箱配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigBox getConfigBox(int id){
//		return configBoxMap.get(id);
//	}
//	
//	/**
//	 * 通过itemId获取宝箱配置
//	 * @param itemId
//	 * @return
//	 */
//	public static ConfigBox getConfigBoxByItemId(int itemId){
//		return configItemBoxMap.get(itemId);
//	}
//	
//	/**
//	 * 通过id获取宠物扭蛋配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigHeroLottery getConfigHeroLottery(int id){
//		return configHeroLotteryMap.get(id);
//	}
//	
//	/**
//	 * 通过id获取奖励配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigReward getConfigReward(int id){
//		return configRewardMap.get(id);
//	}
//	
//	/**
//	 * 通过day和groupId获取任务奖励列表
//	 * @param groupId
//	 * @return
//	 */
//	public static List<ConfigMissionReward>  getConfigMissionRewards(int day, int groupId){
//		return groupConfigMissionRewardsMap.get(day+"_"+groupId);
//	}
//	
//	/**
//	 * 根据day和groupId获取该组的总概率
//	 * @param groupId
//	 * @return
//	 */
//	public static int getGroupMissionRewardProb(int day, int groupId){
//		return groupMissionRewardProbMap.get(day+"_"+groupId);
//	}
	
	public static Map<Integer, ConfigBulletin> getAllConfigBulletin(){
		return configBulletinMap;
	}
	
	public static ConfigBulletin getConfigBulletin(int id){
		return configBulletinMap.get(id);
	}

//	/**
//	 * 通过道具id获取商品配置信息
//	 * @param itemId
//	 * @return
//	 */
//	public static ConfigGoods getConfigGoodsByItemId(int itemId){
//		return configItemGoodsMap.get(itemId);
//	}
//	
//	/**
//	 * 通过id获取任务配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigMission getConfigMission(int id){
//		return configMissionMap.get(id);
//	}
//	
//	/**
//	 * 根据任务类型获取任务列表
//	 * @param type
//	 * @return
//	 */
//	public static List<ConfigMission> getConfigMissionsByType(int type){
//		return typeMissionMap.get(type);
//	}
//	
//	/**
//	 * 根据组获取主线任务列表
//	 * @param group
//	 * @return
//	 */
//	public static List<ConfigMission> getMasterGroupMissions(int group){
//		return masterGroupMissionMap.get(group);
//	}
//	
//	/**
//	 * 获取主线任务
//	 * @return
//	 */
//	public static Map<Integer, List<ConfigMission>> getMasterGroupMissionMap(){
//		return masterGroupMissionMap;
//	}
//	/**
//	 * 通过英雄id获取英雄配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigHero getConfigHero(int id){
//		return configHeroMap.get(id);
//	}
//	
//	/**
//	 * 通过id获取系统消息配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigMsg getConfigMsg(int id){
//		return configMsgMap.get(id);
//	}
//	
//	/**
//	 * 获取所有的系统消息配置
//	 * @return
//	 */
//	public static Map<Integer, ConfigMsg> getAllConfigMsg(){
//		return configMsgMap;
//	}
//	
//	/**
//	 * 
//	 * @param group
//	 * @return
//	 */
//	public static List<ConfigRandomMission> getGroupRandomMissions(int group){
//		return randomGroupMissionMap.get(group);
//	}
//	
//	/**
//	 * 获取所有的PVP配置
//	 * @return
//	 */
//	public static List<ConfigPvp> getAllConfigPvp(){
//		return configPvpList;
//	}
//	
//	/**
//	 * 根据id获取pvp配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigPvp getConfigPvp(int id){
//		return configPvpMap.get(id);
//	}
//	
//	/**
//	 * 获取所有的PVP地图配置
//	 * @return
//	 */
//	public static List<ConfigPvpMap> getAllConfigPvpMap(){
//		return configPvpMapList;
//	}
//	
//	/**
//	 * 获取PVP地图配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigPvpMap getConfigPvpMap(int id){
//		return configPvpMapMap.get(id);
//	}
//	
//	/**
//	 * 获取怪物配置
//	 * @param id
//	 * @return
//	 */
//	public static ConfigMonster getConfigMonster(int id){
//		return configMonsterMap.get(id);
//	}
//	
//	public static void main(String[] args) throws Exception {
//		GlobalConfig.init();
//		SqlMapperConfig.initResSessionFactory();
//		init();
//	}
}
